"""
tpshop商城 登录接口 对象层
"""

# 封装方法的思想：
# 1、固定不变的直接写在方法里面
# 2、动态变化的 写成参数，通过参数传进去
# 传参的时候，先准备好需要传的数据
# 3、响应结果，通过返回值返回
import requests


class TpshopLoginApi(object):
    # 获取验证码
    #定义成类方法  ,方便调用   需要加上装饰器 和 修改参数self 为cls
    @classmethod
    def get_verify(cls,session):
        # 发送验证码的请求
        session.get(url="https://hmshop-test.itheima.net/index.php?m=Home&c=User&a=verify")

    # 登录
    @classmethod
    def login(cls,session,res_data):
        # 发送登录请求  并返回响应结果
        resp = session.post(url="https://hmshop-test.itheima.net/index.php?m=Home&c=User&a=do_login",
                     data=res_data)
        # 返回响应结果
        return resp

# 自测 自己写的代码能否正常运行
if __name__ == '__main__':
    #先创建Session的对象,准备好传参数据
    session = requests.Session()

    #调用写好的方法,并将参数传入
    # 将方法定义为 类方法 ,调用时,就用类名.方法名
    TpshopLoginApi.get_verify(session)

    # 准备好登录用的数据
    res_data = {"username": "17600000000","password": "123456","verify_code": "8888"}
    #调用登录的方法  有返回值,所以要将结果打印出来
    response = TpshopLoginApi.login(session,res_data)

    print("登录结果:",response.json())
